package com.hhkj.study.admin.article.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BizBaseEntity;
import com.ruoyi.common.valid.VAdd;
import com.ruoyi.common.valid.VDisable;
import com.ruoyi.common.valid.VEdit;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.List;

/**
*
* @author SERVER
* @since 2024-09-06
*/
@TableName(value = "x_article")
@EqualsAndHashCode(callSuper = true)
@Data
public class Article extends BizBaseEntity {

	/**
	 * 所属分类id，关联x_catalog表
	*/
	@NotNull(message = "所属分类不能为空", groups = VAdd.class)
	private Long catalogId;
	/**
	 * 封面图片
	*/
	private String coverUrl;
	/**
	 * 资讯标题
	*/
	@NotBlank(message = "标题不能为空", groups = VAdd.class)
	private String title;
	/**
	 * 摘要
	*/
	private String digest;
	/**
	 * 是否重要资讯（0-不是， 1-是）
	*/
	private Integer mainArticleFlag;
	/**
	 * 是否考试动态（0-不是， 1-是）
	*/
	private Integer examStatusFlag;
	/**
	 * 考试动态id，字典表中id
	*/
	private Long examStatusId;
	/**
	 * 所在区域,关联x_dict_multi_level表id
	*/
	private String provinceIds;
	/**
	 * 课程大类,字典表中id
	*/
	private String courseTypes;
	/**
	 * 来源
	*/
	private String originSource;
	/**
	 * 上架标记（0-下架， 1-上架）
	*/
	@NotNull(message = "上架标记不能为空", groups = {VAdd.class, VDisable.class})
	private Integer publishedFlag;
	/**
	 * 阅读量
	*/
	private Integer readAmount;
	/**
	 * 发布时间
	*/
	@NotNull(message = "发布时间不能为空", groups = VAdd.class)
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date publishTime;
	/**
	 * 富文本框内容
	*/
	@NotBlank(message = "内容不能为空", groups = VAdd.class)
	private String content;
	/**
	 * 排序序号
	*/
	private Integer orderNum;

	@TableField(exist = false)
	private List<Long> courseTypeList;


	@TableField(exist = false)
	private List<Long> provinceIdList;

}